package com.koron.common.core.business.common.service;

import com.koron.bean.base.UserReadRecord;
import com.koron.common.core.business.readrecord.Read;

import java.util.Collection;
import java.util.List;

/**
 * @author twcao
 * @title: UserReadRecordService
 * @projectName GDH_EAM_V2
 * @description: 用户已读记录
 * @date 2021/12/1614:40
 */
public interface UserReadRecordService {

    /**
     * 插入一条用户已读记录
     * @param record
     */
    void insert(UserReadRecord record);

    /**
     * 业务id, 账号用线程种获取
     * @param bizId
     */
    void insert(String bizId);

    /**
     * 根据业务id和账号，返回是否已读
     * @param account 账号
     * @param bizId 业务id
     * @return 是否已读
     */
    boolean getByBizId(String account, String bizId);

    /**
     * 批量查询业务id和账号是否已读
     * @param account 账号
     * @param bizIds 业务id 非空
     * @return 返回已读的业务id
     */
    List<String> getByBizIds(String account, List<String> bizIds);

    /**
     * 根据业务id和账号，返回是否已读
     * @param bizId 业务id
     * @return 是否已读
     */
    boolean getByBizId(String bizId);

    /**
     * 批量查询业务id和账号是否已读
     * @param bizIds 业务id 非空
     * @return 返回已读的业务id
     */
    List<String> getByBizIds(List<String> bizIds);

    Collection<? extends Read> mark(Collection<? extends Read> reads);
}
